#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#define LOG "log.txt"

int main()
{
  //查看当前umask码的值
 //mode_t current_umask ;
 // umask(current_umask);  
 // printf("%d\n",current_umask);
 
  //设置umask码的值
  umask(0);
  //写入操作
 // int fd = open(LOG,O_WRONLY | O_CREAT,0666);
 
  //读取操作
 // int fd = open(LOG,O_RDONLY);  //进行读操作时，文件必须存在
 
  //追加操作
  int fd = open(LOG,O_CREAT | O_WRONLY | O_APPEND);
  if(fd == -1)
  {
    printf("fd:%d,error:%d,strinerror:%s\n",fd,errno,strerror(errno));
    exit(-1);
  }
    printf("fd:%d,error:%d,strinerror:%s\n",fd,errno,strerror(errno));

    //write函数的使用
    //const char *message = "aaa";
    //size_t len = strlen(message);
    ////写入次数
    //int count = 5;
    //while(count)
    //{
    //ssize_t bytes_written = write(fd,message,len);
    //if(bytes_written == -1)
    //{
    //  perror("write");
    //  close(fd);
    //  exit(-1);
    //}
    //printf("数据写入成功!\n");
    //count--;
    //}
    
    //read函数的使用
  //  char buffer[1024] = {NULL};
  //  ssize_t bytes_readen = read(fd,buffer,sizeof(buffer));
  //  if(bytes_readen == -1)
  //  {
  //    perror("read");
  //    close(fd);
  //    exit(1);
  //  }
  //  printf("读取成功！\n");
  //  printf("buffer:%s\n",buffer);
  
    //追加操作
    const char *message = "bbb";
    size_t len = strlen(message);
    //写入次数
    int count = 5;
    while(count)
    {
    ssize_t bytes_written = write(fd,message,len);
    if(bytes_written == -1)
    {
      perror("write");
      close(fd);
      exit(-1);
    }
    printf("数据追加成功!\n");
    count--;
    }
    
    

  close(fd);
  return 0;
}
